我正在使用matplotlib在Web应用程序中渲染一些图形。我在运行脚本之前使用过fig.savefig()。但是,我需要一个函数来返回一个实际的“.png”图像,以便我可以用我的HTML调用它。更多(可能是不必要的)信息:我正在使用PythonFlask。我想我可以使用fig.savefig()并将图形粘贴在我的静态文件夹中,然后从我的HTML中调用它,但我不想每次都这样做。如果我可以创建图形,从中制作图像,返回该图像,然后从我的HTML中调用它,那将是最佳选择,然后它就消失了。创建图形的代码有效。但是,它返回一个数字,我猜它不适用于HTML。这里我在路由中调用draw_polyg
我正在使用matplotlib生成许多数值模拟结果图。这些图用作视频中的帧,因此我通过重复调用类似于此的函数来生成其中的许多:frompylabimport*defplot_density(filename,i,t,psi_Na):figure(figsize=(8,6))imshow(abs(psi_Na)**2,origin='lower')savefig(filename+'_%04d.png'%i)clf()问题在于,每次调用此函数时,python进程的内存使用量都会增加几兆字节。例如,如果我用这个循环调用它:if__name__=="__main__":x=linspace(
我一直在尝试在我的代码中为长标签换行。我尝试了之前建议的textwrap方法here,但我的代码通过使用pyplot.setp()方法从csv导入的数组定义yticklabels。否则我使用tight_layout()进行格式化。所以问题是-有没有办法将非常长的y标签轻松包装到换行符?这是一些我想要修复的示例代码:importnumpyasnpimportmatplotlib.pyplotaspltlabels=('Reallyreallyreallyreallyreallyreallylonglabel1','Reallyreallyreallyreallyreallyreallyl
我有一个线图,我想用箭头而不是线来绘制。也就是说,连续点对之间的线应该是从第一个点到第二个点的箭头。我知道arrow功能,但这似乎只做个别箭头。在我想出一种方法来尝试使用它来完成整个情节之前,有没有更好的方法来做到这一点? 最佳答案 您可以使用quiver来执行此操作,但要正确设置关键字参数有点棘手。importnumpyasnpimportmatplotlib.pyplotaspltx=np.linspace(0,2*np.pi,10)y=np.sin(x)plt.figure()plt.quiver(x[:-1],y[:-1],
所以有这个指南:http://matplotlib.org/examples/pylab_examples/scatter_symbol.html#http://matplotlib.org/examples/pylab_examples/scatter_symbol.htmlfrommatplotlibimportpyplotaspltimportnumpyasnpimportmatplotlibx=np.arange(0.0,50.0,2.0)y=x**1.3+np.random.rand(*x.shape)*30.0s=np.random.rand(*x.shape)*800+5
我想在matplotlib.pyplot的3行之间填充,但不幸的是fill_between让我有机会只在两行之间填充。任何想法如何处理这个?编辑:好的,我没有解释我的真正意思,因为我无法以我目前的声誉添加图片,所以可能是这样:我尝试填充由这些线界定的多边形,但我不知道如何填充,因为fill_between让我有机会仅填充其中两条线之间的区域。填充方程下方:y=0x>=0x和y大于0是显而易见的。我从(0,0)开始情节,但我还有3行...y 最佳答案 如果您从点(0,0)开始绘图,因此不需要考虑不在第一象限中的多边形区域,那么在这种特
我正在用python创建一个情节。有没有办法按一个因子重新缩放轴?yscale和xscale命令只允许我关闭对数刻度。编辑:例如。如果我有一个x比例从1nm到50nm的图,则x比例范围从1x10^(-9)到50x10^(-9),我希望它从1到50。因此,我希望绘图函数将放置在绘图上的x值除以10^(-9) 最佳答案 您已经注意到,xscale和yscale不支持简单的线性重新缩放(很遗憾)。作为Hooked答案的替代方案,您可以像这样欺骗标签,而不是弄乱数据:ticks=ticker.FuncFormatter(lambdax,po
下面是我在文本文件中散点绘制数据的代码。我打开的文件包含两列。左列是x坐标,右列是y坐标。该代码创建了x与y的散点图。我需要一个代码来绘制一条最适合散点图中数据的线,并且没有一个内置的pylab函数对我有用。frommatplotlibimport*frompylabimport*withopen('file.txt')asf:data=[line.split()forlineinf.readlines()]out=[(float(x),float(y))forx,yindata]foriinout:scatter(i[0],i[1])xlabel('X')ylabel('Y')tit
对于一个项目,我正在制作一些3D散点图,其中包含三个相应的投影。我使用不同的颜色来表示第四个参数。首先我用某种颜色绘制数据,然后用不同颜色的其他数据重叠绘制,这样最后的顺序就是我可以看到我想要的一切:一开始这很好用,但是当我尝试用稍微不同的数据做同样的事情时,颜色会变得困惑。投影中显示的颜色是正确的,但其中一些在3D图中丢失,因此不再匹配:当我以一种有趣的方式旋转3D绘图时,颜色恢复了,我可以看到它们应该是的样子:但是,我不想要以有趣的方式旋转的3D绘图,因为轴会被弄乱,并且无法像那样正确读取它。我在这里找到了一个解决问题的方法:plotting3dscatterinmatplotli
我希望能够确定我使用matplotlib创建的图形的出处,即了解我的代码和数据的哪个版本创建了这些图形。(有关出处的更多信息,请参阅thisessay。)我想最直接的方法是将代码和数据的修订号添加到已保存图形的元数据中,或者作为后记文件中的注释。在Matplotlib中是否有任何简单的方法可以做到这一点?savefig功能似乎无法做到这一点,但有人想出了一个可行的解决方案吗? 最佳答案 我不知道使用matplotlib的方法,但是你可以addmetadatatopng'swithPIL:f="test.png"METADATA={"